var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
    return typeof e;
} : function(e) {
    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
};

!function(o) {
    var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", r = {
        encode: function(e) {
            for (var o, r, n = String(e), f = t, i = 0, c = "", d = .75; !isNaN(o = n.charCodeAt(d)) || 63 & i || (f = "=", 
            (d - .75) % 1); d += .75) if (o > 127) {
                (r = encodeURI(n.charAt(d)).split("%")).shift();
                for (var a, l = d % 1; a = r[0 | l]; l += .75) i = i << 8 | parseInt(a, 16), c += f.charAt(63 & i >> 8 - l % 1 * 8);
                d = .75 === d ? 0 : d, d += .75 * r.length % 1;
            } else i = i << 8 | o, c += f.charAt(63 & i >> 8 - d % 1 * 8);
            return c;
        },
        decode: function(e) {
            var o, r = String(e), n = t.slice(0, -1), f = [ 6, 4, 2, 0 ], i = "", c = 0, d = 0, a = "";
            try {
                for (var l = 0; (o = n.indexOf(r[l])) > -1; l++) c = c << 6 | o, l % 4 && ((d = 255 & c >> f[l % 4]) < 128 ? (i += a ? decodeURI(a) : "", 
                i += String.fromCharCode(d), a = "") : a += "%" + ("0" + d.toString(16)).slice(-2));
                return i += a ? decodeURI(a) : "";
            } catch (e) {
                throw new Error("base64 malformed!");
            }
        }
    };
    if ("function" == typeof define && define.amd) define(function() {
        return r;
    }); else if ("object" === ("undefined" == typeof exports ? "undefined" : e(exports))) for (var n in r) r.hasOwnProperty(n) && (exports[n] = r[n]); else o.base64 = r;
}("object" === ("undefined" == typeof global ? "undefined" : e(global)) && global || void 0);